\begin{tikzpicture}[
    node distance = 2cm and 2cm,
    N/.style = {circle, draw, font=\Large, minimum size=1.1em},
    every edge/.style = {draw, -> , semithick, shorten >=2pt},
    every edge quotes/.style = {auto=right, inner sep=2pt}
    ]
    \tikzstyle{cal} = [fill=yellow!20, draw, shape=rectangle callout,  rounded corners, minimum width=3em]
    %第一个子图
    \node [N] (11) at (0,0) [label=left :{+}] {1};
    \node [N] (21) [right of = 11]  {2};
    \node [N] (31) [right of = 21] [label=right :{-}] {3};
    \node at ([xshift=-1em,yshift=3em]11.north) {FA1:};
    
    \path (11) edge [->] node [above] {a} (21)
    (21) edge [->] node [above] {b} (31)
    (11) edge [bend right] node [below] {$\varepsilon$} (21) %两个节点之间
    (21) edge [bend right] node (e1) [below] {$\varepsilon$} (31) %两个节点之间
    (21) edge [loop above] node (b1) [above] {b} (21); %循环
    
    
    %第二个子图
    \node [N] (12) at ([xshift=6em]31) [label=left:{+-}] {1};
    \node [N] (22) [right of = 12] {2};
    \node [N] (32) [right of =22] [label=right :{-}] {3};
    
    \path (12) edge [->] node [above] {a} (22)
    (22) edge [->] node [above] {b} (32)
    (12) edge [bend right] node [below] (b2) {b} (22) %两个节点之间
    (32) edge [loop above] node (b22) [above] {b} (32); %循环
    \node at ([xshift=-1em,yshift=3em]12.north) {FA2:};
    
    
    %第三个子图
    \node [N] (13) at ([yshift=-7em]11) [label=left:{+}] {1};
    \node [N] (23) [right of =13] {2};
    \node [N] (33) [right of =23] [label=right:{-}] {3};
    
    \path (13) edge [->] node [above] {a} (23)
    (23) edge [->] node [above] {c} (33)
    (23) edge [bend right] node [below] (e3) {$\varepsilon$} (33) %两个节点之间
    (33) edge [bend right] node [above] {$\varepsilon$} (23) %两个节点之间
    (23) edge [loop above] node (b3) [above] {b} (23); %循环
    \node at ([xshift=-1em,yshift=3em]13.north) {FA3:};

    %第四个子图
    \node [N] (24) at ([xshift=6em]33) [label=left:{+}] {2};
    \node [N] (34) [right of = 24] {3};
    \node [N] (44) [right of =34] [label=right:{-}] {4};
    
    \path (24) edge [->] node [above] {b} (34)
        (34) edge [->] node [above] {c} (44)
        (44) edge [bend left] node [below] (c4) {c} (34) %两个节点之间
        (24) edge [loop above] node (a4) [above] {a} (24) %循环
        (24) edge [bend left] node [above] (b4) {b} (44); %两个节点之间 长
    \node at ([xshift=-1em,yshift=3em]24.north) {FA4:};
    
    
    %第5个子图
    \node [N] (15) at ([yshift=-7em]13)  [label=left:{+}] {1};
    \node [N] (35) [right of =15] {3};
    \node [N] (45) [right of =35] [label=right:{+-}] {4};
    
    \path (15) edge [->] node [above] {b} (35)
        (35) edge [->] node [above] {c} (45)
        (15) edge [loop above] node (a5) [above] {a} (15) %循环
        (45) edge [loop above] node (c5) [above] {c} (45) %循环
        (15) edge [bend right] node [below] {c} (45); %两个节点之间 长
    \node at ([xshift=-1em,yshift=3em]15.north) {FA5:};
    
    %结论
    \node[anchor=west] (DFA) at ([xshift=6em, yshift=2.5em]45) {DFA：FA2};
    \node[anchor=west, align=right] (NFA) at ([yshift=-2.5em]DFA.west) {
        NFA：FA4，FA5\ ($\bar{\varepsilon}$NFA)\\ 
        \qquad\quad FA1，FA3\ ($\varepsilon$NFA)
    };
    \node at ([xshift=-1.5em,yshift=2em]DFA.west) {\textcolor{red}{结论:}};
    \begin{pgfonlayer}{background}
        \node[draw, rounded corners, fit=(DFA) (NFA)] {}; 
    \end{pgfonlayer}
\end{tikzpicture}